The present invention relates to the use of shadow or backup memory, and in particular to such use in connection with a write cache used with a disk drive memory system.
Shadow memories are used as a backup memory in case the main memory which is being shadowed fails. There are unique requirements for shadow memory in a redundant system. Redundant systems will typically have two controllers, each with its own memory, with both being isolated from each other and having separate power supplies so that one can operate in case the power or other aspects of the other fail. In such an environment, the shadow memory for the first controller is the second controller's memory, which is mounted on the circuit board containing the second controller, and powered by the power supply for the second controller. Thus, in the event the first controller fails, or the first controller's power supply fails, the data will be shadowed in the separate circuit board and can be accessed and written to the disks from that shadow memory.
Such a redundant system decreases the available bandwidth for write operations, since the data must be first written to the memory associated with the first controller, and then subsequently written to the shadow memory on the second controller's circuit board. Random access memory (RAM) disk is often used for the shadow memory in order to provide further integrity. A RAM disk is a solid state disk which has its own batteries, and thus is not dependent upon any power supply in the event of power supply failure. A RAM disk is fast, a requirement for a shadow cache memory, but is also very expensive.
In one type of operation, a write back operation, a host computer will send a write command to the memory subsystem, and will wait for an acknowledgement that data has been written to disk as requested before proceeding to other operations. Because of the time required to access disk drives, some memory systems store the write data in a cache memory, and then send back the acknowledgement to the host system even though the data has not been written to the disk yet. This allows the host to be more efficient, but, since it is well known that the integrity of the data in a cache is less than the integrity of data on a disk, this data is backed up in a shadow RAM to give the required security. As can be seen by the example recited above, due to the need to write into the cache memory first, and then into the shadow RAM, additional latency is required before the write back acknowledgement signal can be returned to the host.
Accordingly, there is a need for a shadow RAM with reduced latency and costs.